package com.liu.kafka.canal;

import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * Canal Kafka Message
 *
 * @author chenhuaijie
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CanalMessage {

    /**
     * 数据库
     */
    private String database;

    /**
     * 表名
     */
    private String table;

    /**
     * 是否是DDL语句
     */
    private Boolean isDdl;

    /**
     * 记录ID
     */
    private Long id;

    /**
     * 类型:INSERT/UPDATE/DELETE
     */
    private String type;

    /**
     * Mysql字段类型
     */
    private JSONObject mysqlType;

    /**
     * 变化的数据
     */
    private List<JSONObject> data;

    /**
     * 旧的数据(UPDATE的时候会有)
     */
    private List<JSONObject> old;

    /**
     * 主键名称
     */
    private List<String> pkNames;

    /**
     * 时间戳
     */
    private Long es;

    /**
     * 时间戳
     */
    private Long ts;

    /**
     * Sql类型
     */
    private JSONObject sqlType;
}
